from flask import Blueprint,request,jsonify
from utils.comm import get_data
from db import db

# 创建蓝图
bp_course = Blueprint('course',__name__)


# 无限级分类重构
def xtree(data):
    # 先判断data没有直接返回
    if not data:
        return data
    # 遍历data变成字典
    tree={}
    list=[]
    for i in data:
        tree[i['id']] = i

    for j in data:
        # 获取父id
        pid = j['pid']
        # 如果父id等于0说明是顶级分类
        if pid == 0:
            # 是顶级分类直接加入列表
            list.append(j)
        else:
            # 查看父类下有没有子类
            if 'son' not in tree[pid]:
                # 如果没有初始化列表
                tree[pid]['son'] = []
            # 把子类加到父类列表中
            tree[pid]['son'].append(j)
    return list


@bp_course.route('/cateM',methods=['POST','GET'])
def cateM():
    if request.method=="POST":
        # 获取数据
        data = get_data()
        # print(data)
        # 构造sql语句
        sql = """insert into cates values(0,'%s',%d,'%s')"""%(data['name'],int(data['pid']),data['params'])
        # print(sql)
        # 添加
        db.insert(sql)
        # 返回
        return jsonify({'code':200})
    elif request.method=='GET':
        # 查询表中的数据
        sql = """select * from cates"""
        # 查询所有使用find_all
        res = db.find_all(sql)
        data = xtree(res)
        # 返回
        return jsonify({'code':200, 'list':data})
